ci: Replace PAPR with CoreOS CI
authorColin Walters <walters@verbum.org>
Mon, 3 Feb 2020 20:45:07 +0000 (20:45 +0000)
committerColin Walters <walters@verbum.org>
Thu, 6 Feb 2020 23:14:42 +0000 (23:14 +0000)
Move the alternative builds into the Jenkinsfile.

Update it to do a FCOS build + kola run.

We drop the flatpak/rpm-ostree runs for now; the former
will needs some work to do the automatic virt bits.  The
latter I think we can circle back to when we e.g. figure
out how to include rpm-ostree's tests in kola runs.

.cci.jenkinsfile
.papr-ex.yaml [deleted file]
.papr.yml [deleted file]
tests/test-libarchive-import.c

index 9acb34c5062ff4bc1a384ba5242b07beb69e3ccd..96e524418a158536ff783123cee37fec90862083 100644 (file)
@@ -6,17 +6,49 @@ COSA_IMAGE = 'quay.io/coreos-assembler/coreos-assembler:latest'
 COSA_BUILDROOT_IMAGE = 'registry.svc.ci.openshift.org/coreos/cosa-buildroot:latest'
 
 stage("Build") {
-parallel rpms: {
+parallel normal: {
   coreos.pod(image: COSA_BUILDROOT_IMAGE, runAsUser: 0) {
       checkout scm
+      stage("Core build") {
       sh """
         set -xeuo pipefail
         # fetch tags so `git describe` gives a nice NEVRA when building the RPM
         git fetch origin --tags
         git submodule update --init
 
+        env SKIP_INSTALLDEPS=1 ./ci/build.sh
+      """
+      }
+      stage("Unit tests") {
+      try {
+        sh """
+        make check
+        make syntax-check
+        """
+      } finally {
+          archiveArtifacts allowEmptyArchive: true, artifacts: 'test-suite.log'
+      }
+      }
+      sh """
+        make install DESTDIR=\$(pwd)/insttree/
+        tar -c -C insttree/ -zvf insttree.tar.gz .
+      """
+      stash includes: 'insttree.tar.gz', name: 'build'
+  }
+},
+// A minimal build, helps test our build options
+minimal: {
+  coreos.pod(image: COSA_BUILDROOT_IMAGE, runAsUser: 0) {
+      checkout scm
+      sh """
+        set -xeuo pipefail
+        git submodule update --init
+
         env NOCONFIGURE=1 ./autogen.sh
-        ./configure --with-openssl --with-curl --with-selinux
+        ./configure --without-curl --without-soup --disable-gtk-doc --disable-man \
+          --disable-rust --without-libarchive --without-selinux --without-smack \
+          --without-openssl --without-avahi --without-libmount --disable-rofiles-fuse \
+          --disable-experimental-api
         make
       """
   }
@@ -34,3 +66,53 @@ codestyle: {
   }
 }
 }
+
+// Build FCOS and do a kola basic run
+stage("More builds and test") {
+parallel fcos: {
+  coreos.pod(image: COSA_IMAGE, runAsUser: 0, kvm: true, memory: "2048Mi", cpu: "2") {
+    stage("Build FCOS") {
+      checkout scm
+      unstash 'build'
+      sh """
+        set -xeuo pipefail
+        mkdir insttree
+        tar -C insttree -xzvf insttree.tar.gz
+        rsync -rlv insttree/ /
+        coreos-assembler init --force https://github.com/coreos/fedora-coreos-config
+        mkdir -p overrides/rootfs
+        mv insttree/* overrides/rootfs/
+        rmdir insttree
+        coreos-assembler build
+      """
+    }
+    stage("FCOS basic") {
+      timeout(time: 30, unit: 'MINUTES') {
+        sh """
+          set -xeuo pipefail
+          cosa kola run --basic-qemu-scenarios
+        """
+      }
+    }
+  }
+},
+buildopts: {
+  coreos.pod(image: COSA_BUILDROOT_IMAGE, runAsUser: 0) {
+      checkout scm
+      sh """
+        set -xeuo pipefail
+        git submodule update --init
+
+        git worktree add build-rust && cd build-rust
+        env CONFIGOPTS="--enable-rust" SKIP_INSTALLDEPS=1 ./ci/build.sh
+        make check TESTS=tests/test-rollsum
+        cd .. && rm -rf build-rust
+
+        git worktree add build-libsoup && cd build-libsoup
+        env CONFIGOPTS="--without-curl --without-openssl --with-soup" SKIP_INSTALLDEPS=1 ./ci/build.sh
+        make check
+        cd .. && rm -rf build-libsoup
+      """
+  }
+}
+}
diff --git a/.papr-ex.yaml b/.papr-ex.yaml
deleted file mode 100644 (file)
index fbbd19d..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-# https://fedoraproject.org/wiki/CI/Tests
-branches:
-    - master
-    - auto
-    - try
-
-context: FAH29-insttests
-required: false
-
-container:
-  image: registry.fedoraproject.org/fedora:29
-  kvm: true
-
-tests:
-  - ci/fah29-insttests.sh
-
-artifacts:
-  - tests/installed/artifacts/
-
----
-
-# This suite skips the RPMs and does the build+unit tests in a container
-inherit: false
-branches:
-    - master
-    - auto
-    - try
-required: true
-container:
-  image: registry.fedoraproject.org/fedora:29
-context: f29-primary
-env:
-  # We only use -Werror=maybe-uninitialized here with a "fixed" toolchain
-  CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2'
-  # Only for CI with a known g-ir-scanner
-  GI_SCANNERFLAGS: '--warn-error'
-  ASAN_OPTIONS: 'detect_leaks=0'  # Right now we're not fully clean, but this gets us use-after-free etc
-  # TODO when we're doing leak checks: G_SLICE: "always-malloc"
-  CONFIGOPTS: '--with-curl --with-openssl'
-
-tests:
-  - ci/ci-commitmessage-submodules.sh
-  - ci/build-check.sh
-  - ci/ci-release-build.sh
-
-artifacts:
-  - test-suite.log
-  - config.log
-  - gdtr-results
-
----
-# And now the contexts below here are variant container builds
-
-context: f29-rust
-inherit: true
-container:
-    image: registry.fedoraproject.org/fedora:29
-env:
-  CONFIGOPTS: '--enable-rust'
-  CI_PKGS: cargo
-
-tests:
-    - ci/build.sh
-    - make check TESTS=tests/test-rollsum
-
----
-
-context: f29-gnutls
-inherit: true
-container:
-    image: registry.fedoraproject.org/fedora:29
-env:
-  CONFIGOPTS: '--with-crypto=gnutls'
-  CI_PKGS: pkgconfig(gnutls)
-
-tests:
-    - ci/build.sh
-    - make check TESTS=tests/test-basic.sh
-
----
-
-inherit: true
-
-context: f29-minimal
-env:
-  CONFIGOPTS: '--without-curl --without-soup --disable-gtk-doc --disable-man
-   --disable-rust --without-libarchive --without-selinux --without-smack
-   --without-openssl --without-avahi --without-libmount --disable-rofiles-fuse
-   --disable-experimental-api'
-
-tests:
-  - ci/build.sh
-
----
-
-inherit: true
-required: true
-
-context: f29-libsoup
-
-env:
-  CONFIGOPTS: "--without-curl --without-openssl --with-soup"
-
-tests:
-  - ci/build-check.sh
-
----
-
-inherit: true
-required: true
-
-context: f29-introspection-tests
-
-env:
-    # ASAN conflicts with introspection testing;
-    # See https://github.com/ostreedev/ostree/issues/1014
-    INSTALLED_TESTS_PATTERN: "libostree/test-sizes.js libostree/test-sysroot.js libostree/test-core.js"
-
-tests:
-  - ci/build-check.sh
diff --git a/.papr.yml b/.papr.yml
deleted file mode 100644 (file)
index f74985e..0000000
--- a/.papr.yml
+++ /dev/null
@@ -1,145 +0,0 @@
-# This suite skips the RPMs and does the build+unit tests in a container
-inherit: false
-
-container:
-  image: registry.fedoraproject.org/fedora:29
-context: f29-primary
-env:
-  # We only use -Werror=maybe-uninitialized here with a "fixed" toolchain
-  CFLAGS: '-fsanitize=undefined -fsanitize-undefined-trap-on-error -fsanitize=address -O2 -Wp,-D_FORTIFY_SOURCE=2'
-  # Only for CI with a known g-ir-scanner
-  GI_SCANNERFLAGS: '--warn-error'
-  ASAN_OPTIONS: 'detect_leaks=0'  # Right now we're not fully clean, but this gets us use-after-free etc
-  # TODO when we're doing leak checks: G_SLICE: "always-malloc"
-  CONFIGOPTS: '--with-curl --with-openssl'
-
-tests:
-  - ci/ci-commitmessage-submodules.sh
-  - ci/build-check.sh
-  - ci/ci-release-build.sh
-  - make dist-then-build
-
-artifacts:
-  - test-suite.log
-  - config.log
-  - gdtr-results
-
----
-# And now the contexts below here are variant container builds
-
-context: f29-rust
-inherit: true
-container:
-    image: registry.fedoraproject.org/fedora:29
-env:
-  CONFIGOPTS: '--enable-rust'
-  CI_PKGS: cargo
-
-tests:
-    - ci/build.sh
-    - make check TESTS=tests/test-rollsum
-
----
-
-context: f29-gnutls
-inherit: true
-container:
-    image: registry.fedoraproject.org/fedora:29
-env:
-  CONFIGOPTS: '--with-crypto=gnutls'
-  CI_PKGS: pkgconfig(gnutls)
-
-tests:
-    - ci/build.sh
-    - make check TESTS=tests/test-basic.sh
-
----
-
-inherit: true
-
-context: f29-minimal
-env:
-  CONFIGOPTS: '--without-curl --without-soup --disable-gtk-doc --disable-man
-   --disable-rust --without-libarchive --without-selinux --without-smack
-   --without-openssl --without-avahi --without-libmount --disable-rofiles-fuse
-   --disable-experimental-api'
-
-tests:
-  - ci/build.sh
-
----
-
-inherit: true
-
-context: f29-libsoup
-
-env:
-  CONFIGOPTS: "--without-curl --without-openssl --with-soup"
-
-tests:
-  - ci/build-check.sh
-
----
-
-inherit: true
-
-context: f29-introspection-tests
-
-env:
-    # ASAN conflicts with introspection testing;
-    # See https://github.com/ostreedev/ostree/issues/1014
-    INSTALLED_TESTS_PATTERN: "libostree/test-sizes.js libostree/test-sysroot.js libostree/test-core.js"
-
-tests:
-  - ci/build-check.sh
-
----
-
-# Reset inheritance for non-variant builds
-inherit: false
-
-context: f29-flatpak
-
-# This test case wants an "unprivileged container with bubblewrap",
-# which we don't have right now; so just provision a VM and do a
-# docker --privileged run.
-host:
-  distro: fedora/29/atomic
-  specs:
-    ram: 4096  # build-bundle is a static delta, which needs RAM right now
-
-tests:
-  - docker run --rm --privileged -v $(pwd):/srv/code registry.fedoraproject.org/fedora:29 /bin/sh -c "cd /srv/code && ./ci/flatpak.sh"
-
-artifacts:
-  - test-suite.log
-
----
-
-# Run rpm-ostree's vmcheck.  This is a temporary hack until
-# we share more code. https://github.com/projectatomic/rpm-ostree/issues/662
-inherit: false
-
-context: f29-rpmostree
-
-cluster:
-  hosts:
-    - name: vmcheck
-      distro: fedora/29/atomic
-  container:
-    image: registry.fedoraproject.org/fedora:29
-
-env:
-  HOSTS: vmcheck
-  # This should roughly match the Fedora spec file, although right now we don't
-  # explicitly enable gtk-doc because we don't really need it
-  CONFIGOPTS: '--with-selinux --with-dracut=yesbutnoconf --with-curl --with-openssl'
-
-tests:
-  - ./ci/rpmostree.sh
-
-artifacts:
-  - test-suite.log
-  - vmcheck
-
-timeout: 60m
index 70e221d1a0658feb1321e53ca87a0ff281760c1e..d3429cd6907698bc664adda336d571c2c15f54a7 100644 (file)
@@ -544,6 +544,12 @@ test_libarchive_selinux (gconstpointer data)
 
   if (skip_if_no_xattr (td))
     goto out;
+  if (getenv ("container"))
+    {
+      // FIXME dedup this with libtest.sh have_selinux_relabel
+      g_test_skip ("skip in containers for now");
+      goto out;
+    }
 
   if (td->skip_all != NULL)
     {